﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 基于WPF的电缆采样数据分析系统.Models;
using 基于WPF的电缆采样数据分析系统.Models.CommonUse;
using 基于WPF的电缆采样数据分析系统.Models.Dbs;
using 基于WPF的电缆采样数据分析系统.Models.Enums;
using 基于WPF的电缆采样数据分析系统.Models.FileLogs;
using 基于WPF的电缆采样数据分析系统.Models.RefWav;
using 基于WPF的电缆采样数据分析系统.Models.Task;

namespace 基于WPF的电缆采样数据分析系统
{
    /// <summary>
    /// 全局参数设置
    /// </summary>
    public class GlobalVariableEdit
    {

        #region 当前工程信息
        /// <summary>
        /// 当前工程信息
        /// </summary>
        public static ProjectDataInfo CurrentProjectDataInfo { get; set; }

        /// <summary>
        /// 文件路径
        /// </summary>
        public static string FilePath { get; set; }

        #endregion


        #region 通道信息
        /// <summary>
        /// 通道数据
        /// </summary>
        public static List<ChannelStatus> ChannelStatusList { get; set; }

        #endregion


        #region 任务默认参数

        /// <summary>
        /// 描述信息
        /// </summary>
        public static string TaskContent { get; set; }

        /// <summary>
        /// 通道信息
        /// </summary>
        public static PassageType CurrentChannelIndex { get; set; } = 0;

        /// <summary>
        /// 任务默认X轴起点
        /// </summary>
        public static float XAxisStartPoint { get; set; } = 0;
        /// <summary>
        /// 任务默认X轴终点
        /// </summary>
        public static float XAxisEndPoint { get; set; } = 2000;
        /// <summary>
        /// 任务默认X轴刻度
        /// </summary>
        public static float XAxisScale { get; set; } = 100;

        /// <summary>
        /// 任务默认Y轴起点
        /// </summary>
        public static float YAxisStartPoint { get; set; } = -350;
        /// <summary>
        /// 任务默认Y轴终点
        /// </summary>
        public static float YAxisEndPoint { get; set; } = 350;
        /// <summary>
        /// 任务默认Y轴刻度
        /// </summary>
        public static float YAxisScale { get; set; } = 50;
        /// <summary>
        /// X轴平移
        /// </summary>
        public static float XAxisTranslation { get; set; }
        /// <summary>
        /// Y轴平移
        /// </summary>
        public static float YAxisTranslation { get; set; }
        #endregion


        #region 参考波形参数
        /// <summary>
        /// 当前选中参考波形
        /// </summary>
        public static RefWavformType CurrentRefWav { get; set; } = RefWavformType.RefWavformNone;

        /// <summary>
        /// 当前选中波形文件数据
        /// </summary>
        public static UpdateWavList CurrentWavList { get; set; }

        /// <summary>
        /// R1保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R1WavList { get; set; }
        /// <summary>
        /// R2保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R2WavList { get; set; }
        /// <summary>
        /// R3保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R3WavList { get; set; }
        /// <summary>
        /// R4保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R4WavList { get; set; }
        /// <summary>
        /// R5保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R5WavList { get; set; }
        /// <summary>
        /// R6保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R6WavList { get; set; }
        /// <summary>
        /// R7保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R7WavList { get; set; }
        /// <summary>
        /// R8保存参考波形文件数据
        /// </summary>
        public static UpdateWavList R8WavList { get; set; }


        /// <summary>
        /// R1波形别名
        /// </summary>
        public static string R1Name { get; set; }
        /// <summary>
        /// R2波形别名
        /// </summary>
        public static string R2Name { get; set; }
        /// <summary>
        /// R3波形别名
        /// </summary>
        public static string R3Name { get; set; }
        /// <summary>
        /// R4波形别名
        /// </summary>
        public static string R4Name { get; set; }
        /// <summary>
        /// R5波形别名
        /// </summary>
        public static string R5Name { get; set; }
        /// <summary>
        /// R6波形别名
        /// </summary>
        public static string R6Name { get; set; }
        /// <summary>
        /// R7波形别名
        /// </summary>
        public static string R7Name { get; set; }
        /// <summary>
        /// R8波形别名
        /// </summary>
        public static string R8Name { get; set; }


        /// <summary>
        /// R1波形是否显示
        /// </summary>
        public static bool R1Display { get; set; }
        /// <summary>
        /// R2波形是否显示
        /// </summary>
        public static bool R2Display { get; set; }
        /// <summary>
        /// R3波形是否显示
        /// </summary>
        public static bool R3Display { get; set; }
        /// <summary>
        /// R4波形是否显示
        /// </summary>
        public static bool R4Display { get; set; }
        /// <summary>
        /// R5波形是否显示
        /// </summary>
        public static bool R5Display { get; set; }
        /// <summary>
        /// R6波形是否显示
        /// </summary>
        public static bool R6Display { get; set; }
        /// <summary>
        /// R7波形是否显示
        /// </summary>
        public static bool R7Display { get; set; }
        /// <summary>
        /// R8波形是否显示
        /// </summary>
        public static bool R8Display { get; set; }


        #endregion


        #region 日志信息
        /// <summary>
        /// 已使用过的文件的日志集合
        /// </summary>
        public static ObservableCollection<UsedFileLog> UsedFileLogList { get; set; } = new ObservableCollection<UsedFileLog>();


        /// <summary>
        /// 操作日志集合
        /// </summary>
        public static ObservableCollection<AllUsedLog> UsedLogList { get; set; } = new ObservableCollection<AllUsedLog>();

        #endregion


        #region 中英文状态
        /// <summary>
        /// 中英文状态
        /// </summary>
        public static LangugeType LangugeStatus { get; set; } = LangugeType.Chinese;

        #endregion


        #region 次数积累
        /// <summary>
        /// 导入波形次数
        /// </summary>
        public static int ImportWaveformCount { get; set; } = 0;

        /// <summary>
        /// 创建工程次数
        /// </summary>
        public static int CreateWaveformCount { get; set; } = 0;

        /// <summary>
        /// 导出波形次数
        /// </summary>
        public static int ExportWaveformCount { get; set; } = 0;

        #endregion


        #region 当前用户
        /// <summary>
        /// 当前用户信息
        /// </summary>
        public static User CurrentUserInfo { get; set; }

        #endregion
    }
}
